import { defineSchema, defineTable } from "convex/server";
import { v } from "convex/values";
/**
Schemas:
* Convex 项目中的表
* 表格中的文档类型

    虽然可以在不定义架构的情况下使用 Convex，但添加 schema.ts 文件将确保表中的文档类型正确。
如果您使用的是 TypeScript，则添加架构还将在整个应用中提供端到端的类型安全性。
    我们建议您在项目开始时没有用于快速原型设计的架构，然后在巩固计划后添加架构。
 */
export default defineSchema({
    podcasts:defineTable({
        audioStorageId: v.optional(v.id('_storage')),
        user: v.id('users'),
        podcastTitle: v.string(),
        podcastDescription: v.string(),
        audioUrl: v.optional(v.string()),
        imageUrl: v.optional(v.string()),
        imageStorageId: v.optional(v.id('_storage')),
        author: v.string(),
        authorId: v.string(),
        authorImageUrl: v.string(),
        voicePrompt: v.string(),
        imagePrompt: v.string(),
        voiceType: v.string(),
        audioDuration: v.number(),
        views: v.number()
    })
      .searchIndex('search_author',{searchField:'author'})
      .searchIndex('search_title',{searchField:'podcastTitle'})
      .searchIndex('search_body',{searchField:'podcastDescription'}),

    users:defineTable({
        email: v.string(),
        imageUrl: v.string(),
        clerkId:v.string(),
        name: v.string(),

    })
})